package o;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class fia<T> {
    final Type ʼ;
    final Class<? super T> ʽ;

    protected fia() {
        this.ʼ = ॱ(getClass());
        this.ʽ = fip.ˎ(this.ʼ);
    }

    public fia(Type type) {
        this.ʼ = fip.ˋ(type);
        this.ʽ = fip.ˎ(this.ʼ);
    }

    static Type ॱ(Class<?> cls) {
        Type genericSuperclass = cls.getGenericSuperclass();
        if (!(genericSuperclass instanceof Class)) {
            return fip.ˋ(((ParameterizedType) genericSuperclass).getActualTypeArguments()[0]);
        }
        throw new RuntimeException("Missing type parameter.");
    }

    public final Class<? super T> ˊ() {
        return this.ʽ;
    }

    public final Type ॱ() {
        return this.ʼ;
    }
}
